from django.db import models

# Create your models here.

# 创建会员模型
class Users(models.Model):
    # 用户名
    username=models.CharField(max_length=30)
    # 密码    密码要加密　加密到７７位
    password=models.CharField(max_length=80)
    # 手机号
    phone=models.CharField(max_length=11)
    # 邮箱
    email=models.CharField(max_length=100,null=True)
    # 性别
    sex=models.IntegerField(null=True)
    # 年龄
    age=models.IntegerField(null=True)
    # 头像
    pic=models.CharField(max_length=100)
    # 状态 正常０　　禁用１　删除２
    status=models.IntegerField(default=0)
    # 添加时间
    addtime=models.DateTimeField(auto_now_add=True)


    class Meta:
        # 指定生成权限
        permissions = (
            ("show_users", "查看会员管理"),
            ("insert_users", "添加会员"),
            ("edit_users", "修改会员"),
            ("del_users", "删除会员"),
        )


# 创建商品分类模型
class Types(models.Model):
    # 分类名
    name = models.CharField(max_length=10)
    # 分类pid
    pid = models.IntegerField()
    # 路径
    path = models.CharField(max_length=50)

    def __str__(self):
        return '<Types: Types '+self.name+'>'

    class Meta:
        # 指定生成权限
        permissions = (
            ("show_types", "查看商品分类管理"),
            ("insert_types", "添加商品分类"),
            ("edit_types", "修改商品分类"),
            ("del_types", "删除商品分类"),
        )


# 创建商品模型
class Goods(models.Model):
    # id tid title price num info pic status clicknum addtime
    # 外键
    tid=models.ForeignKey(to='Types',to_field='id')
    # 名称
    title=models.CharField(max_length=255)
    # 价格
    price=models.FloatField()
    # 库存
    num=models.IntegerField()
    # 详情
    info=models.TextField()
    # 图片
    pic=models.CharField(max_length=100)
    # 状态
        # 新发布 0 热卖 1 下架 2 删除 3
    status=models.IntegerField()
    # 点击量
    clicknum=models.IntegerField(default=0)
    # 添加时间
    addtime=models.DateTimeField(auto_now_add=True)

    class Meta:
        # 指定生成权限
        permissions = (
            ("show_goods", "查看商品管理"),
            ("insert_goods", "添加商品"),
            ("edit_goods", "修改商品"),
            ("del_goods", "删除商品"),
        )


# 创建地址模型
class Address(models.Model):
    # 外键
    uid=models.ForeignKey(to="Users",to_field="id")
    # 收货人姓名
    addressname=models.CharField(max_length=20)
    # 收货地址
    address=models.CharField(max_length=200)
    # 收货电话
    addressphone=models.CharField(max_length=11)
    # 状态
        # 普通地址 False 默认地址 True
    status=models.BooleanField(default=False)

    class Meta:
        # 指定生成权限
        permissions = (
            ("show_address", "查看地址管理"),
            ("insert_address", "添加地址"),
            ("edit_address", "修改地址"),
            ("del_address", "删除地址"),
        )


# 创建订单模型
class Order(models.Model):
    # 用户uid
    uid=models.ForeignKey(to="Users",to_field="id")
    # 地址aid 
    aid=models.ForeignKey(to="Address",to_field="id")
    # 总价
    totalprice=models.FloatField()
    # 订单生成时间
    addtime=models.DateTimeField(auto_now_add=True)
    # 状态
    status=models.IntegerField(default=0)

    class Meta:
        # 指定生成权限
        permissions = (
            ("show_order", "查看订单管理"),
            ("insert_order", "添加订单"),
            ("edit_order", "修改订单"),
            ("del_order", "删除订单"),
        )


# 创建订单详情
class OrderInfo(models.Model):
    # 订单号
    orderid=models.ForeignKey(to="Order",to_field="id")
    # 商品id
    goodsid=models.ForeignKey(to="Goods",to_field="id")
    # 数量
    num=models.IntegerField()
    # 价格
    price=models.FloatField()

